package com.zhiche.lisa.bms.pojo.vo.prepay;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import lombok.Data;
import lombok.ToString;

import java.math.BigDecimal;
import java.util.Date;

@Data
@ToString
public class PrepayBillPertrolVO {

    private Long id;
    /**
     * 对应账款id
     */
    private Long headId;
    /**
     * 订单号
     */
    private String orderCode;
    /**
     * 订单号明细id
     */
    private Integer orderDtlId;
    /**
     * OTM运单号
     */
    private String waybillId;
    /**
     * OTM运单号明细
     */
    private String waybillDtlId;
    /**
     * 费用类型ID
     */
    private Long typeId;
    /**
     * 费用名称( 保留同步过来的原始费用 )
     */
    private String typeName;
    /**
     * 运输方式
     */
    private String transModel;
    /**
     * 车型编码
     */
    private String vehicleTypeCode;
    /**
     * 车型名称
     */
    private String vehicleTypeName;
    /**
     * 车队id
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long fleetId;
    /**
     * 车队名称
     */
    private String fleetName;
    /**
     * 承运商id
     */
    private Long lspId;
    /**
     * 承运商名称
     */
    private String lspName;
    /**
     * 车架/车牌号
     */
    private String vin;
    /**
     * 司机id
     */
    private Long driverId;
    /**
     * 银行流水号
     */
    private String bankSerialNum;
    /**
     * 司机名称
     */
    private String driverName;
    /**
     * 起运地名称
     */
    private String startAddr;
    /**
     * 起运地编码
     */
    private String startAddrCode;
    /**
     * 目的地
     */
    private String endAddr;
    /**
     * 目的地编码
     */
    private String endAddrCode;
    /**
     * 合同类型
     */
    private String contractType;
    /**
     * 合同编码
     */
    private String contractCode;
    /**
     * 付款方ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long payerId;
    /**
     * 付款方名称
     */
    private String payerName;
    /**
     * 收款方ID
     */
    @JsonSerialize(using = ToStringSerializer.class)
    private Long payeeId;
    /**
     * 收款方名称
     */
    private String payeeName;
    /**
     * 预估单价
     */
    private BigDecimal estPrice;
    /**
     * 单价
     */
    private BigDecimal actualPrice;
    /**
     * 公里数
     */
    private BigDecimal kilometre;
    /**
     * 数量
     */
    private Integer num;
    /**
     * 预估金额
     */
    private BigDecimal estAmt;
    /**
     * 结算金额(总金额)
     */
    private BigDecimal actualAmt;
    /**
     * 租户ID
     */
    private Long tenantId;
    /**
     * 下单时间
     */
    private Date orderDate;
    /**
     * 回单时间
     */
    private Date receiptDate;
    /**
     * 运单单状态：10-已发运、20-已回单、30-已运抵
     */
    private String loadStatus;
    /**
     * 状态：10-新增、20-审核、30-确认
     */
    private Integer status;
    /**
     * 同步状态：0-未审核、10-审核成功、20-审核驳回、30-转账失败
     */
    private String syncStatus;
    /**
     * 现金预付
     */
    private BigDecimal prepayCash;
    /**
     * 油费预付
     */
    private BigDecimal prepayOil;
    /**
     * 预付方式; 0-油卡, 1-现金
     */
    private Integer prepayType;
    /**
     * 预付总额
     */
    private BigDecimal prepaySum;
    /**
     * 余额
     */
    private BigDecimal balance;
    /**
     * 加油站油价
     */
    private BigDecimal pertrolOilPrice;
    /**
     * 确认加油状态; 0-未确认, 1-已确认
     */
    private Integer pertrolOilStatus;
    /**
     * 确认加油状态; 0-未确认, 1-已确认
     */
    private String pertrolOilStatusStr;
    /**
     * 修改时间
     */
    private Date gmtModify;
    /**
     * 创建时间
     */
    private Date gmtCreate;
    /**
     * 创建人
     */
    private Long creator;
    /**
     * 拥有人
     */
    private Long proprietor;
    /**
     * 关联费用id
     */
    private String costId;

    /**
     * 客户运单号
     */
    private String cusWaybill;
    /**
     * 司机编号
     */
    private String vcorderno;
    /**
     * 第一桶油量
     */
    private BigDecimal firstOilCapacity;
    /**
     * 装车单编号
     */
    private String shipmentCode;
    /**
     * 确认加油时间
     */
    private Date pertrolOilDate;

    /**
     * 加油确认时间
     */
    private String pertrolOilDateStr;
}
